package com.java.comprehensive.other.sort;

/**
 * @Author: Dgg
 * @Date: 2021/10/10 20:41
 */
public class Insertion {
	/**插入排序*/
	public static void sort(Comparable [] comparables){
		for (int i = 1; i < comparables.length; i++) {
			/**外层循环在自增的时候 内层循环每循环一次 相当于 将i大小的数组 排序好了，
			 * 所以只需要内层循环比较相邻的时候就已经和最大的比较了，比较相邻就可知道该结束本次循环还是 该继续向前比较。*/
			for (int j = i; j > 0 ; j--) {
				//比较索引j处的值和索引j-1处的值，如果索引j-1的值比j的大，就交换数据 如果不大就是合适位置 ，推出循环就行
				if(SortUtil.greater(comparables[j-1],comparables[j])){
					SortUtil.exch(comparables, j-1,j);
				}else {
					break;
				}
			}
		}
	}
}
